package reflect.reflect_method;

import reflect.reflect_class.Student;

import java.lang.reflect.Constructor;
import java.lang.reflect.Method;

public class MethodTest {
    public static void main(String[] args) throws Exception{
        // 获取Student类的字节码对象
        Class<?> clazz = Class.forName("reflect.reflect_class.Student");
        // 获取Student类中的方法
        Method[] methods = clazz.getDeclaredMethods();
        // 获取Student类中的getSum方法
        Method getSum = clazz.getDeclaredMethod("getSum", int.class, int.class);
        // 设置访问权限为所有
        getSum.setAccessible(true);
        // 获取构造器
        Constructor<?> constructor = clazz.getDeclaredConstructor();
        // 设置构造器的访问权限
        constructor.setAccessible(true);
        // 创建Student对象
        Student o = (Student) constructor.newInstance();
        // 调用getSum方法
        int sum = (int)getSum.invoke(o, 1, 2);
        System.out.println(sum);
        System.out.println("==========");
    }
}
